package com.xuwang.controller;


import com.xuwang.pojo.CaseFiling;
import com.xuwang.service.impl.CaseFilingServiceImpl;
import com.xuwang.vo.CaseFilingVo;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.text.ParseException;
import java.util.Map;

/**
 *案件备案表控制层
 *@ClassName CaseFilingController
 *@Description TODO
 *@Author OuJunchen
 *@Date 2021/9/14 上午10:38
 *@Version 1.0
 */
@RestController
@RequestMapping("/caseFilingController")
@Api(value = "(CaseFiling)案件备案表管理", tags = "(CaseFiling)案件备案表管理接口API")
@ApiResponses({
        @ApiResponse(code = 400, message = "请求参数不完整或者错误"),
        @ApiResponse(code = 302, message = "临时重定向，被拦截器栏了"),
        @ApiResponse(code = 304, message = "缓存数据"),
        @ApiResponse(code = 404, message = "找不到页面"),
        @ApiResponse(code = 405, message = "请求方式不正确，比如后台接收是post，但前端请求的是get"),
        @ApiResponse(code = 406, message = "页面地址和接口名冲突"),
        @ApiResponse(code = 415, message = "请求格式不正确，前端可能没有把请求头修改为json，也可能前端请求的json对象没有转换为字符串"),
        @ApiResponse(code = 500, message = "后台服务逻辑错误")
})
public class CaseFilingController {

    @Resource
    //服务对象
    private CaseFilingServiceImpl caseFilingService;

    /**
     * 通过一个pojo对象新增单条数据
     *
     * @param caseFiling 一个数据库对应的POJO数据对象
     * @Author OuJunchen
     * @return 返回插入的主键id
     */
    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @ApiOperation(value = "添加案件备案", notes = "添加备案信息", httpMethod = "POST", response = String.class)
    public Map<String, Object> insert(@RequestBody @ApiParam(name = "CaseFiling",value = "pojo模型",required = true) CaseFiling caseFiling) {
        return this.caseFilingService.insertSelective(caseFiling);
    }

    /**
     * 通过主键删除单条数据
     *
     * @param id 主键
     * @Author OuJunchen
     * @return 单条数据
     */
    @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
    @ApiOperation(value = "删除案件备案",notes = "根据一个主键删除备案",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "id集合(格式例子：1,2,3)",paramType = "query",dataType = "String",required = true),
    })
    public Map<String, Object> deleteById(@RequestParam("id") String id) {
        return this.caseFilingService.deleteByPrimaryKey(id);
    }

    /**
     * 查询所有案件备案情况
     *
     * @param caseFilingVo pojo对象
     * @Author OuJunchen
     * @return 所有数据
     */
    @RequestMapping(value = "/selectAll", method = RequestMethod.GET)
    @ApiOperation(value = "查询案件备案",notes = "查询备案",httpMethod = "GET")
    public Map<String, Object> selectAll(@RequestParam String page, @RequestParam String limit, @ApiParam(name = "caseFilingVo",value = "pojo模型",required = false) CaseFilingVo caseFilingVo) throws ParseException {
        return this.caseFilingService.selectAll(Integer.parseInt(page), Integer.parseInt(limit), caseFilingVo);
    }

}
